    // cloudfunctions/handleLogin/index.js
    const cloud = require('wx-server-sdk');
    cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
    const db = cloud.database();
    const _ = db.command;

    // 预设的管理员openid
    const ADMIN_OPENID = 'oZcz96yrGXz5y00hHjMt9EtuNdQY';  // 设置为你的openID

    exports.main = async (event, context) => {
      const wxContext = cloud.getWXContext();
      const { loginType, studentId, userInfo } = event; 

      // 打印用户的openid
      console.log('当前用户openid:', wxContext.OPENID);

      try {
        // 根据登录类型处理不同的登录逻辑
        if (loginType === 'student') {
          // 验证学号
          const studentResult = await db.collection('users').where({
            studentId: studentId,
            role: '学生'  
          }).get();

          if (studentResult.data.length === 0) {
            return {
              success: false,
              message: '学号不存在或不是学生账号，请检查后重试'
            };
          }

          // 更新学生信息
          const studentData = studentResult.data[0];
          await db.collection('users').doc(studentData._id).update({
            data: {
              openid: wxContext.OPENID,
              userInfo: userInfo,
              lastLoginTime: db.serverDate()
            }
          });

          return {
            success: true,
            userData: {
              ...studentData,
              openid: wxContext.OPENID
            }
          };
        } else if (loginType === 'manager') {
          // 验证是否是宿管
          const managerResult = await db.collection('users').where({
            openid: wxContext.OPENID,
            role: '宿管'  
          }).get();

          // 如果不是已存在的宿管，检查是否是预设的管理员openid
          if (managerResult.data.length === 0) {
            if (wxContext.OPENID === ADMIN_OPENID) {
              // 是预设管理员，创建宿管账号
              const { _id } = await db.collection('users').add({
                data: {
                  openid: wxContext.OPENID,
                  role: '宿管',
                  name: userInfo.nickName || '宿管',
                  userInfo: userInfo,
                  createTime: db.serverDate(),
                  lastLoginTime: db.serverDate()
                }
              });

              // 返回新创建的宿管数据
              return {
                success: true,
                userData: {
                  openid: wxContext.OPENID,
                  role: '宿管',
                  name: userInfo.nickName || '宿管',
                  userInfo: userInfo,
                  _id: _id
                }
              };
            }

            // 不是预设管理员，返回错误
            return {
              success: false,
              message: '您不是宿管，无法以宿管身份登录'
            };
          }

          // 已存在的宿管，更新信息
          const managerData = managerResult.data[0];
          await db.collection('users').doc(managerData._id).update({
            data: {
              userInfo: userInfo,
              lastLoginTime: db.serverDate()
            }
          });

          return {
            success: true,
            userData: {
              ...managerData,
              userInfo: userInfo
            }
          };
        }

        return {
          success: false,
          message: '无效的登录类型'
        };

      } catch (error) {
        console.error('登录处理出错：', error);
        return {
          success: false,
          message: '登录处理失败，请稍后重试'
        };
      }
    };